/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cput.tp.patterns.app.factory;

import com.cput.tp.patterns.behaviour.iterator.Item;
import com.cput.tp.patterns.behaviour.iterator.Menu;
import com.cput.tp.patterns.behaviour.momento.DietInfoCaretaker;
import com.cput.tp.patterns.creational.abstractfactory.AbstractFactory;
import com.cput.tp.patterns.creational.factorymethod.AnimalFactory;
import com.cput.tp.patterns.creational.prototype.Dog;
import com.cput.tp.patterns.creational.prototype.Person;
import com.cput.tp.patterns.creational.prototype.Prototype;
import com.cput.tp.patterns.structural.adapterpattern.TemperatureClassReporter;
import com.cput.tp.patterns.structural.adapterpattern.TemperatureInfo;
import com.cput.tp.patterns.structural.adapterpattern.TemperetureObjectReporter;
import com.cput.tp.patterns.structural.facade.Facade;
import com.cput.tp.patterns.structural.proxy.FastThing;
import com.cput.tp.patterns.structural.proxy.Proxy;

/**
 *
 * @author Malotana
 */

public class AppFactory {
    public static Prototype Person(String fred){
       return new Person(fred);
    }

    public static Prototype Dog(String woof) {
        return (Prototype) new Dog(woof);
    }

    public static AnimalFactory AnimalFactory() {
        return new AnimalFactory();
    }

    public static AbstractFactory AbstractFactory() {
        return new AbstractFactory();
    }

    public static TemperatureInfo getTepreRep() {
        return new  TemperatureClassReporter();
    }

    public static TemperatureInfo getTempObjectRepoty() {
        return new TemperetureObjectReporter();
    }

    public static Facade getFacade() {
        return new Facade();
    }

    public static DietInfoCaretaker getDietInfoCaretaker() {
        return new DietInfoCaretaker();
    }

    public static AnimalFactory getAnimalFactory() {
        return new AnimalFactory();
    }

    public static Proxy getProxy() {
        return new Proxy();
    }

    public static FastThing getFastThing() {
        return new FastThing();
    }

    public static Item getItem(String spaghetti, float f) {
        return new Item(spaghetti,f);
    }

    public static Menu getMenu() {
        return new Menu();
    }
}